Software applications go through multiple upgrades in functionality throughout their lifespans. Typically, each upgrade changes or extends existing functionality, provides new functionality, and increases usability, among other things. Software vendors encourage users to install upgrades to gain the benefit of new or extended features as well as gather data to analyze user behavior and determine which features to add to application software.
Typically, software vendors rely on marketing to convey the value and advantages of new features within the upgraded software to users and to those who make upgrade decisions across groups of users within an organization. Most times, users and decision makers can only read the marketing materials or review short videos or animations of new features when attempting to evaluate how new features would assist in the day-to-day use of a software applications. Upgrading application software within an organization requires planning that may include training, data conversion, compatibility with other software infrastructure, analysis of the impact on network bandwidth, storage capacity change, and other factors. The benefit of a software upgrade should outweigh the totality of these efforts. In addition, deploying application software and user data to the cloud may be an option for some organizations. Moving to the cloud can be motivated by the time and resources needed to repeatedly upgrade applications, a process that can often be done more efficiently with a cloud instance.
Existing solutions to the problem of gathering user feedback on day-today use of software applications require user data to be communicated from user devices or application servers inside firewalls to servers outside the protection of firewalls. These solutions fail to work if communication cannot be established and in many instances are completed turned off because users or user organizations refuse to send private data outside the organizational firewall. The systems described here operate inside a user or organizational firewall and only permit data sharing outside the firewall upon user command and only then communicate specific, scrubbed data free of private or confidential information.